package com.spvs.system.utils;

import javax.imageio.ImageIO;
import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.awt.image.BufferedImage;
import java.io.File;
import java.io.IOException;

public class PNGUtils {

    public static String createPNG(String userName, String fileName) {
        int width = 300; // 图片宽度
        int height = 100; // 图片高度
        try {
            // 创建BufferedImage对象
            BufferedImage image = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
            Graphics2D g2d = image.createGraphics();

            // 设置背景色
            g2d.setColor(java.awt.Color.WHITE);
            g2d.fillRect(0, 0, width, height);

            // 设置字体
            Font font = new Font("微软雅黑", Font.PLAIN, 36); // 使用微软雅黑字体，根据需要调整
            g2d.setFont(font);

            // 设置颜色
            g2d.setColor(java.awt.Color.BLACK);

            // 计算文本位置以居中显示
            FontMetrics metrics = g2d.getFontMetrics(font);
            int x = (width - metrics.stringWidth(userName)) / 2;
            int y = (height - metrics.getHeight()) / 2 + metrics.getAscent();

            // 在图像上绘制文本
            g2d.drawString(userName, x, y);
            File file = new File(fileName);
            // 保存图像到本地
            ImageIO.write(image, "png", file); // 输出为PNG格式
            System.out.println("图片已保存到本地");
            // 关闭图形上下文
            g2d.dispose();
            return file.getAbsolutePath();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

}
